1. Field of the Invention
The present invention relates, in general, to data storage devices and their management including virtualization of the devices, and, more particularly, to a method and corresponding system for providing virtualization data services in a data storage system that includes legacy storage devices with data in place or without disrupting user data on such devices.
2. Relevant Background
An ongoing challenge facing designers and developers of data storage systems is how best to use and integrate existing legacy storage devices with other data storage devices. A legacy storage device is a data storage device that already contains user or application data because it has been used for data storage in the past, such as a host device running an application or as part of an enterprise's data storage system. Problems arise later when attempts are made to include the legacy device in a larger data storage system that includes a variety of management services.
For example, many data storage systems are managed or configured to provide virtualization features. Virtualization allows a set of storage devices to be pooled together with the combined storage space being regarded as addressable main storage by a user of a data storage system into which virtual addresses are mapped. Presently, when a user allows a data storage system access to a legacy storage device by mapping it to a host or storage manager, the legacy storage device does not support a variety of virtualization features such as volume expansion, snapshot, mirroring, and data migration. Placing metadata or information needed to support these virtualization features on the legacy storage device would destroy the user data stored on the device. As a result, it has proven difficult to fully utilized legacy storage devices that are added to a data storage system with the added devices typically not supporting virtualization and appearing as uninitialized devices or disks to a storage processor.
In some data storage applications, a storage system may include a “virtualization head” and a set of “captive” storage devices. The storage devices are captive in that they are initially considered raw storage that can be provisioned by the virtualization head. Part of such provisioning that is done by the virtualization head involves the reservation of a configuration metadata region that maintains logs, configuration information, and the like for each storage device in the system, and the data stored in this region on each device facilitates and supports virtualization throughout the raw storage devices. A problem arises because the virtualization head cannot store its configuration metadata region on a legacy device or volume without destroying previously stored user data.
Another problem is that the data services provided by a data storage manager or processor often require a logging region, a data service-specific metadata region, and a scratch pad region to effectively carry out data management functions. As with the configuration metadata regions, the data storage manager or processor cannot store these regions or their corresponding data on the legacy device without copying over existing user data on a legacy device. The lack of this data seriously affects the use and integration of legacy storage devices into data storage systems, which often results in the legacy storage devices not being effectively utilized and their storage capacities being unavailable to all users of the data storage system.
Hence, there remains a need for a method and system for more effectively integrating legacy storage devices into data storage systems to enable their pooling with other raw storage devices. Such a method and system preferably would be configured to support at least a portion of the virtualization features presently not available with legacy storage devices such as volume expansion, snapshot, mirroring, data migration, and/or other useful virtualization features.